//
//  MXNavigationUtils.h
//  MXNavigationDemo
//
//  Created by nf on 2017/9/7.
//  Copyright © 2017年 陈学明. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

//屏幕宽度
CG_INLINE CGFloat ScreenWidth_N(void){
    return [[UIScreen mainScreen] bounds].size.width ;
}

//屏幕高度
CG_INLINE CGFloat ScreenHeight_N(void){
    return [[UIScreen mainScreen] bounds].size.height ;
}

//屏幕最大的宽度
CG_INLINE CGFloat ScreenMaxWidth_N(void){
    return MAX(ScreenWidth_N(),ScreenHeight_N()) ;
}

//状态栏最大的宽度
CG_INLINE CGFloat StatusBarMaxWidth_N(void){
    CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
    return MAX(CGRectGetMaxX(statusBarFrame), CGRectGetMaxY(statusBarFrame)) ;
}

//屏幕是否处于横屏状态
CG_INLINE BOOL ScreenIsHorizontal_N(void){
    return StatusBarMaxWidth_N == ScreenMaxWidth_N ;
}

//导航栏原始高度 （导航栏高度除去satatusbar后的高度）
CG_INLINE CGFloat NavigationNorlmalHeight_N(void){
    return 44.0f ;
}

//导航栏大标题增加出来的高度
CG_INLINE CGFloat NavigationBigTitleAdditionHeight_N(void){
    return 55.0f ;
}

//状态栏初始高度
CG_INLINE CGFloat StatusBarOrginalHeight_N(void){
    
    CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;
    CGFloat statusBarOffset = MIN(CGRectGetMaxX(statusBarFrame), CGRectGetMaxY(statusBarFrame));
    if (statusBarOffset == 40.0f) {
        statusBarOffset -= 20.0f;
    }
    return statusBarOffset ;
}

//是否是iPhoneX
CG_INLINE BOOL IsIphoneX_N(void){
    return (UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone)&&(ScreenMaxWidth_N()==812.0f) ;
}
//状态栏高度
CG_INLINE CGFloat StatusBarHeight_N(void){
    return (ScreenIsHorizontal_N()&&IsIphoneX_N()) ? 0 : StatusBarOrginalHeight_N() ;
}
//导航栏高度
CG_INLINE CGFloat NavigationHeight_N(void){
    return NavigationNorlmalHeight_N() + StatusBarHeight_N();
}

//强弱引用
//#define XBWeakSelf(type)  __weak typeof(type) weak##type = type;
//#define XBStrongSelf(type) __strong typeof(type) type = weak##type;

// 是否为空
//#define ISEMPTY_N(_v) (_v == nil || _v.length == 0)

/**打印****/
//#define ISSHOWNAVIGATIONLOG 0
//#define XBLog_N(fmt, ...) if(ISSHOWNAVIGATIONLOG) { NSLog(fmt,##__VA_ARGS__); }

/**
 * 显示大标题的条件
 */
typedef NS_ENUM(NSUInteger , NavBigTitleType) {
    NavBigTitleTypeUnknow  = 0 ,     //没有设置大标题属性
    NavBigTitleTypeDefault = 1 << 0, //所有情况下都不使用大标题 (默认情况)
    NavBigTitleTypeIOS11   = 1 << 1 ,   //在iOS11系统上使用大标题
    NavBigTitleTypePlus    = 1 << 2 ,    //在plus尺寸上使用大标题（iphone6plus,iphone7plus,iphone8plus）
    NavBigTitleTypeIphoneX = 1 << 3 , //在iPhoneX上使用大标题
    NavBigTitleTypeAll     = 1 << 4 ,     //在所有尺寸和版本上都是用大标题
    NavBigTitleTypePlusOrX = NavBigTitleTypePlus | NavBigTitleTypeIphoneX , //在plus和X上使用大标题
};
/**
 * 显示大标题后，标题移动的动画类型
 */
typedef NS_ENUM(NSUInteger , NavTitleAnimationType) {
    NavTitleAnimationTypeLeftScale = 0,     //从左边缩放
    NavTitleAnimationTypeCenterScale = 1 ,  //从中间缩放
    NavTitleAnimationTypeSmoothFade = 2,    //流畅的动画
    NavTitleAnimationTypeStiffFade = 3 ,    //僵硬的动画
};
@interface EasyNavigationUtils : NSObject
//根据颜色创建一个图片
+ (UIImage *)createImageWithColor:(UIColor *)color ;
// 改变图片的颜色
+ (UIImage *)imageWithTintColor:(UIImage *)image color:(UIColor *)tintColor ;
//调整图片大小
+ (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size;
@end







